<?php
/**
 * Created by 无所谓已
 * User: Administrator
 * Date: 2025-08-17
 * Time: 20:12
 */

namespace plugin\csauto\app\model;

use plugin\admin\app\model\Base;

/**
 * @property integer $id         ID(主键)
 * @property integer d_name      下载器名称
 * @property integer d_host      下载器IP
 * @property integer d_port      下载器端口
 * @property integer w_port      api端口
 * @property integer d_username  下载器账号
 * @property integer d_password  下载器密码
 * @property integer up_speed    上传限速
 * @property integer down_speed  下载限速
 * @property integer task_limit  任务限制
 * @property integer task_size   容量限制(GB)
 * @property integer task_torrent_min_size  任务种子最小体积(GB)
 * @property integer task_torrent_max_size  任务种子最大体积(GB)
 * @property integer nc_throttled NC服务器限速标记 0-不限速 1-限速
 */
class DownloaderModel extends Base
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'cs_downloader';

    /**
     * The primary key associated with the table.
     *
     * @var string
     */
    protected $primaryKey = 'id';

    /**
     * 获取实际的任务限制（考虑限速状态）
     * @return int
     */
    public function getEffectiveTaskLimit()
    {
        // 如果下载器被限速，使用限速限制
        if ($this->nc_throttled == 1) {
            $throttledLimit = \plugin\csauto\app\service\SystemService::getConfig(
                \plugin\csauto\app\service\SystemService::NC_THROTTLED_TASK_LIMIT
            ) ?: 2;
            return min($this->task_limit, $throttledLimit);
        }

        // 否则返回原始的任务限制
        return $this->task_limit;
    }


}